package com.ecnu.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ecnu.common.core.domain.AjaxResult;
import com.ecnu.common.core.domain.model.LoginUser;
import com.ecnu.common.core.page.TableDataInfo;
import com.ecnu.system.domain.Project;
import com.ecnu.system.domain.dto.ProjectDTO;
import com.ecnu.system.domain.dto.ProjectForMyDTO;
import com.ecnu.system.domain.dto.ProjectListDTO;
import com.fasterxml.jackson.core.JsonProcessingException;

/**
 * <p>
 * ecnu_活动表 服务类
 * </p>
 *
 * @author zdn
 * @since 2025-03-19
 */
public interface IProjectService extends IService<Project> {

    /**
     * 活动列表
     *
     * @param listDTO
     * @param name
     * @return
     */
    TableDataInfo ProjectList(ProjectListDTO listDTO, LoginUser name);

    /**
     * 编辑活动
     *
     * @param project
     * @param userId
     * @return
     */
    AjaxResult edit(ProjectDTO project, LoginUser userId) throws JsonProcessingException;

    /**
     * 管理列表
     *
     * @param listDTO
     * @param name
     * @return
     */
    TableDataInfo allList(ProjectListDTO listDTO, String name);

    /**
     * 活动详情
     *
     * @param id
     * @return
     */
    AjaxResult infoById(String id);

    /**
     * 活动简介
     *
     * @param id
     * @param userId
     * @return
     */
    AjaxResult briefById(String id, LoginUser loginUser);

    TableDataInfo projectForMy(ProjectForMyDTO project, String string);
}
